

# 删除链表 head 中值等于 val 的节点，并返回删除节点后的链表的头节点
def remove_elements(head, val):
    # 最小子问题
    if head is None:
        return None
    # 删除除了头节点的子链表中指定值的节点
    head.next = remove_elements(head.next, val)
    # 处理头节点
    if head.val == val:
        return head.next
    else:
        return head